/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package pe.com.cotelasa.scp.dominio.servicio.impl;

import java.io.Serializable;
import java.util.Collection;
import java.util.HashMap;
import java.util.Map;
import javax.inject.Inject;
import org.springframework.stereotype.Service;
import pe.com.cotelasa.common.dao.excepcion.DAOException;
import pe.com.cotelasa.scp.dao.IDAOCompraDetalleNotaCredito;
import pe.com.cotelasa.scp.dominio.common.ResultadoServicio;
import pe.com.cotelasa.scp.dominio.excepcion.ServiceException;
import pe.com.cotelasa.scp.dominio.service.IServicioCompraDetalleNotaCredito;
import pe.com.cotelasa.scp.entidad.CompraDetalleNotaCredito;
import pe.com.cotelasa.scp.dominio.common.ESTADO_REGISTRO;
import pe.com.cotelasa.scp.dominio.common.ESTADO_RESULTADO;

/**
 *
 * @author WINDOWS 7
 */
@Service
public class ServicioCompraDetalleNotaCreditoImpl implements IServicioCompraDetalleNotaCredito, Serializable {
    
    @Inject
    private IDAOCompraDetalleNotaCredito daoCompraDetalleNotaCredito;
    
    @Override
    public Collection<CompraDetalleNotaCredito> listarCompraDetalleNotaCreditoActivos() throws ServiceException {
        try {
            return daoCompraDetalleNotaCredito.listarActivos(CompraDetalleNotaCredito.class);
        } catch (DAOException ex) {
            throw new ServiceException(ex.getMessage(), ex);
        }
    }

    @Override
    public CompraDetalleNotaCredito conseguirCompraDetalleNotaCreditoPorId(Integer idCompraDetalleNotaCredito) throws ServiceException {
        try {
            return daoCompraDetalleNotaCredito.obtenerEntidadPorId(CompraDetalleNotaCredito.class, idCompraDetalleNotaCredito);
        } catch (DAOException ex) {
            throw new ServiceException(ex.getMessage(), ex);
        }
    }

    @Override
    public ResultadoServicio guardarCompraDetalleNotaCredito(CompraDetalleNotaCredito compraDetalleNotaCredito) throws ServiceException {
        ResultadoServicio resultadoServicio = new ResultadoServicio(ESTADO_RESULTADO.EXITOSO);
        try {
            //banco.setId(5);
            daoCompraDetalleNotaCredito.insertar(compraDetalleNotaCredito);
        } catch (DAOException ex) {
            throw new ServiceException(ex.getMessage(), ex);
        }
        return resultadoServicio;
    }

    @Override
    public ResultadoServicio actualizarCompraDetalleNotaCredito(CompraDetalleNotaCredito compraDetalleNotaCredito) throws ServiceException {
        ResultadoServicio resultadoServicio = new ResultadoServicio(ESTADO_RESULTADO.EXITOSO);
        try {
            daoCompraDetalleNotaCredito.actualizar(compraDetalleNotaCredito);
        } catch (DAOException ex) {
            throw new ServiceException(ex.getMessage(), ex);
        }
        return resultadoServicio;
    }

     @Override
    public Collection<CompraDetalleNotaCredito> buscarDetallesNotaCredito(Integer idCompraNotaCredito) throws ServiceException {
        try {
            Map<String, Object> parametro = new HashMap<String, Object>();
            parametro.put("idCompraNotaCredito", idCompraNotaCredito);
            parametro.put("estadoRegistro", "" + ESTADO_REGISTRO.ACTIVO.getValor());
            
            return daoCompraDetalleNotaCredito.obtenerColeccionEntidadPorFiltros(CompraDetalleNotaCredito.class, parametro);
            
            
        } catch (DAOException ex) {
            throw new ServiceException(ex.getMessage(), ex);
        }
    }
    
}
